/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import controller.MyMouseEventListener;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import javax.swing.JPanel;

/**
 * A hálózat rajzát magába foglaló panel a fő ablakban.
 * @author Kéki
 */
public class vaszonJPanel extends JPanel {
    /**
     * A View referenciáját tárolja.
     */
    private View view;

    /**
     * Az OnPaint esemény hatására hívódik, kirajzolja a hálózatot a képernyőre.
     * @param g A Graphics objektum referenciája, amelyre rajzolunk.
     */
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (view != null) {
            view.drawNetwork(g);
        }
    }

    /**
     * A View referencia beállítása (Új eseménykezelőt hoz létre a régi helyett a  kapott View osztály referenciájával)
     * @param view View osztály referenciája
     */
    public void setView(View view) {
        this.view = view;
        MouseListener[] mouseListeners = getMouseListeners();                   //Törli az összes eddig rajta lévő eseménykezelőt (Akkor van ilyen, ha már volt betöltve hálózat és újat töltünk be.)
        for (MouseListener ml : mouseListeners) {
            removeMouseListener(ml);
        }
        addMouseListener(new MyMouseEventListener(view));                       //Beállít egy újonnan létrehozott eseménykezelőt az új View osztály referenciájával.
    }
}
